package com.resoft.bigdata.p2p.record;

import java.util.HashMap;
import java.util.Map;

import org.apache.hadoop.hbase.util.Bytes;


/**
 * 
 * @author ziv
 * 投资人信息表
 * 行键设计： p2p机构代码+合同编号 + 日期 
 */
public class InvestInfo extends AbsRecord implements RecordInterface {
	public static final String TABLE_NAME = "J0903";
	public static final String[] FAMILY_NAMES= {"F1"};
	
//	private String orgCode; //p2p 机构代码
//	private String bankId; //机构编码或名称，不确定
//	private String date; //上报日期，即业务放开日期
//	private String xh; //序号
//	private String xmht; //项目合同编号
	private String tzrid; //投资人ID
	private String tzsj; //投资时间
	private String tzje; //投资金额
	
	public static final byte[]  ORG_CODE= Bytes.toBytes("ORG_CODE");
	public static final byte[]  BANK_ID= Bytes.toBytes("DBANK_ID");
	public static final byte[]  DATE= Bytes.toBytes("DDATE");
	public static final byte[]  XH= Bytes.toBytes("XH");
	public static final byte[]  XMHTID= Bytes.toBytes("XMHTID");
	public static final byte[]  TZRID= Bytes.toBytes("TZRID");
	public static final byte[]  TZJE= Bytes.toBytes("TZJE");
	public static final byte[]  TZSJ= Bytes.toBytes("TZSJ");
	
//	public String getOrgCode() {
//		return orgCode;
//	}
//	public void setOrgCode(String orgCode) {
//		this.orgCode = orgCode;
//	}
	public String getDBank_Id() {
		return bankId;
	}
	public void setDBank_Id(String bankId) {
		this.bankId = bankId;
	}
//	public String getDate() {
//		return date;
//	}
//	public void setDate(String date) {
//		this.date = date;
//	}
//	public String getXh() {
//		return xh;
//	}
//	public void setXh(String xh) {
//		this.xh = xh;
//	}
	public String getXmhtID() {
		return xmht;
	}
	public void setXmhtID(String xmht) {
		this.xmht = xmht;
	}
	public String getTzrid() {
		return tzrid;
	}
	public void setTzrid(String tzrid) {
		this.tzrid = tzrid;
	}
	public String getTzsj() {
		return tzsj;
	}
	public void setTzsj(String tzsj) {
		this.tzsj = tzsj;
	}
	public String getTzje() {
		return tzje;
	}
	public void setTzje(String tzje) {
		this.tzje = tzje;
	}
//	private int getDays(){
//		int days = DateUtil.convert2Day(ddate, DateUtil.DATE_FORMAT);
//		return Integer.MAX_VALUE-days;
//	}


	
	public Map<byte[], byte[]> getCells() {
		Map<byte[], byte[]> cells = new HashMap<byte[], byte[]>();
		Map<byte[], byte[]> superCells = super.getCells();
		cells.putAll(superCells);
		
//		cells.put(ORG_CODE, Bytes.toBytes(orgCode));
//		cells.put(BANK_ID, Bytes.toBytes(bankId));
//		cells.put(DATE, Bytes.toBytes(date));
//		cells.put(XH, Bytes.toBytes(xh));
//		cells.put(XMHT, Bytes.toBytes(xmht));
		cells.put(TZRID, Bytes.toBytes(tzrid));
		cells.put(TZJE, Bytes.toBytes(tzje));
		cells.put(TZSJ, Bytes.toBytes(tzsj));
		return cells;
	}
	public String getCreatePhoenixTableSQL() {
		//TODO:
		StringBuilder sb = new StringBuilder();
		sb.append("CREATE TABLE " +  TABLE_NAME + "  ");
		sb.append("( PK varbinary PRIMARY KEY, ");
		sb.append("  F1." + Bytes.toString(ORG_CODE) + "  varchar, ");
		sb.append("  F1." + Bytes.toString(BANK_ID )+ "  varchar, ");
		sb.append("  F1." + Bytes.toString(XH )+ "  varchar, ");
		sb.append("  F1." + Bytes.toString(XMHT )+ "  varchar, ");
		sb.append("  F1." + Bytes.toString(TZRID )+ "  varchar, ");
		sb.append("  F1." + Bytes.toString(TZJE )+ "  varchar, ");
		sb.append("  F1." + Bytes.toString(TZSJ) + "  varchar ");
		sb.append(")");
 
		return sb.toString();
	}
	
//	public void setValue(byte[] key, byte[] value){
//		if(Bytes.compareTo(key, ORG_CODE) == 0){
//			setOrgCode(Bytes.toString(value));
//		}else if(Bytes.compareTo(key, BANK_ID) == 0){
//			setBankId(Bytes.toString(value));
//		}else if(Bytes.compareTo(key, DATE) == 0){
//			setDate(Bytes.toString(value));
//		}else if(Bytes.compareTo(key, XH) == 0){
//			setXh(Bytes.toString(value));
//		}else if(Bytes.compareTo(key, XMHT) == 0){
//			setXmht(Bytes.toString(value));
//		}else if(Bytes.compareTo(key, TZRID) == 0){
//			setTzrid(Bytes.toString(value));
//		}else if(Bytes.compareTo(key, TZJE) == 0){
//			setTzje(Bytes.toString(value));
//		}else if(Bytes.compareTo(key, TZSJ) == 0){
//			setTzsj(Bytes.toString(value));
//		}else{
//			System.err.println(TABLE_NAME + ", Key:" + key + ", Value:" + value);
//		}
//
//	}
	
	
	
	
	public String getTableName() {
		return TABLE_NAME;
	}

	@Override
	public String toString() {
		return "InvestInfo [tzrid=" + tzrid + ", tzsj=" + tzsj + ", tzje="
				+ tzje + ", orgCode=" + orgCode + ", dataDate=" + dataDate
				+ ", bankId=" + bankId + ", xh=" + xh + ", xmht=" + xmht + "]";
	}
	public String[] getFamilies() {
		return FAMILY_NAMES;
	}

	
	
}
